home *** CD-ROM | disk | FTP | other *** search
/ AOL File Library: 2,801 to 2,900 / aol-file-protocol-4400-2801-to-2900.zip / AOLDLs / C++ Files Library / SK (Sockects) 1.4.1 r2 / SK v1.4.1 r2.sit / SK 1.4.1 r2 / SK / TCP Headers / UDPPB.h < prev   
Text File  |  1993-06-15  |  2KB  |  107 lines

  1. /* 
  2.     UDPPB.h    
  3.     C definitions of parameter block entries needed for UDP calls
  4.  
  5.     Copyright Apple Computer, Inc. 1988-91 
  6.     All rights reserved
  7.         
  8. */
  9.  
  10. #ifndef __UDPPB__
  11. #define __UDPPB__
  12.  
  13. #ifndef __MACTCPCOMMONTYPES__
  14. #include <MacTCPCommonTypes.h>
  15. #endif
  16.  
  17. #define UDPCreate        20
  18. #define UDPRead            21
  19. #define UDPBfrReturn    22
  20. #define UDPWrite        23
  21. #define UDPRelease        24
  22. #define UDPMaxMTUSize    25
  23. #define UDPStatus        26
  24. #define UDPMultiCreate    27
  25. #define UDPMultiSend    28
  26. #define UDPMultiRead    29
  27. #define UDPCtlMax        29
  28.  
  29. typedef enum UDPEventCode {
  30.     UDPDataArrival = 1,
  31.     UDPICMPReceived,
  32.     lastUDPEvent = 32767
  33.     } UDPEventCode;
  34.  
  35. #ifdef THINK_C
  36.  
  37.     typedef ProcPtr UDPNotifyProc;
  38.     
  39. #else
  40.  
  41.     typedef pascal void (*UDPNotifyProc) (
  42.             StreamPtr udpStream, 
  43.             unsigned short eventCode, 
  44.             Ptr userDataPtr,
  45.             struct ICMPReport *icmpMsg);
  46. #endif
  47.  
  48. typedef void (*UDPIOCompletionProc) (struct UDPiopb *iopb);
  49.  
  50. typedef    unsigned short    udp_port;
  51.  
  52. typedef struct UDPCreatePB {            /* for create and release calls */
  53.     Ptr             rcvBuff;
  54.     unsigned long    rcvBuffLen;
  55.     UDPNotifyProc    notifyProc;
  56.     unsigned short    localPort;
  57.     Ptr                userDataPtr;
  58.     udp_port        endingPort;
  59. } UDPCreatePB;
  60.     
  61. typedef struct UDPSendPB {
  62.     unsigned short    reserved;
  63.     ip_addr            remoteHost;
  64.     udp_port        remotePort;
  65.     Ptr                wdsPtr;
  66.     Boolean            checkSum;    
  67.     unsigned short    sendLength;
  68.     Ptr                userDataPtr;
  69.     udp_port        localPort;
  70. } UDPSendPB;
  71.     
  72. typedef struct UDPReceivePB {        /* for receive and buffer return calls */
  73.     unsigned short    timeOut;
  74.     ip_addr            remoteHost;
  75.     udp_port        remotePort;
  76.     Ptr             rcvBuff;
  77.     unsigned short    rcvBuffLen;
  78.     unsigned short    secondTimeStamp;
  79.     Ptr                 userDataPtr;
  80.     ip_addr            destHost;        /* only for use with multi rcv */
  81.     udp_port        destPort;        /* only for use with multi rcv */
  82. } UDPReceivePB;
  83.  
  84. typedef struct UDPMTUPB {
  85.     unsigned short     mtuSize;
  86.     ip_addr            remoteHost;
  87.     Ptr                userDataPtr;
  88. } UDPMTUPB;
  89.  
  90. typedef struct UDPiopb {
  91.     char                 fill12[12];
  92.     UDPIOCompletionProc    ioCompletion;
  93.     short                 ioResult;
  94.     char                 *ioNamePtr;        
  95.     short                 ioVRefNum;        
  96.     short                ioCRefNum;            
  97.     short                 csCode;
  98.     StreamPtr             udpStream;                
  99.     union {
  100.         struct UDPCreatePB    create;
  101.         struct UDPSendPB    send;
  102.         struct UDPReceivePB    receive;
  103.         struct UDPMTUPB        mtu;
  104.     } csParam;
  105. } UDPiopb;
  106.     
  107. #endif